﻿#region Copyright RenGuiYou. All rights reserved.
//=====================================================
// NeatlyFrameWork
// Author:      RenGuiyou
// Feedback: 	mailto:750539605@qq.com
//=====================================================
#endregion

using System.Collections.Generic;

public class HashtWriter
{
    private readonly List<byte> byteList = new();
    
    public void Init()
    {
        byteList.Clear();
    }

    public void Write(byte val)
    {
        byteList.Add(val);
    }

    public void WriteByte(int val)
    {
        byteList.Add((byte)val);
    }

    public void Write(int val)
    {
        byteList.Add((byte)(val >> 24));
        byteList.Add((byte)(val >> 16));
        byteList.Add((byte)(val >> 8));
        byteList.Add((byte)(val));
    }

    public void Write(string val)
    {
        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(val);
        Write(bytes);
    }

    public void Write(byte[] bytes)
    {
        Write((byte)bytes.Length);
        foreach (var b in bytes)
        {
            Write(b);
        }
    }

    public void WriteMd5(byte[] bytes)
    {
        foreach (var b in bytes)
        {
            Write(b);
        }
    }

    public List<byte> GetBytes()
    {
        return byteList;
    }
}
